﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Castle.ActiveRecord;
using Atendex.Dominio.Interfaces;
using System.IO;

namespace Atendex.Dominio.ActiveRecord
{
    [ActiveRecord("anexos")]
    [Serializable]
    public class AnexoAR : ActiveRecordBase<AnexoAR>, IAnexo
    {
        private AnexoAR() { }
        public AnexoAR(string nome, byte[] dados)
        {
            this.Nome = nome;
            this.Dados = dados;
        }

        public AnexoAR(string nome, Stream stream)
        {
            Nome = nome;
            Dados = new byte[stream.Length];
            stream.Read(Dados, 0, Dados.Length);
        }

        [PrimaryKey]
        public int Id { get; set; }
        
        [Property]
        public string Nome { get; set; }

        [Property(SqlType = "varbinary(max)")]
        public byte[] Dados { get; set; }

        [BelongsTo(Type=typeof(MensagemAR))]
        public IMensagem Mensagem { get; private set; }
    }
}
